<?php

class CuocKiemTraController extends BaseController {

    private $cuockt;

    //Ham xay dung
    function __construct() {
        $this->cuockt = new CuocKiemTra();
    }

    //Phuong thuc hien ds thong tin
    public function index() {
        $appendlinks = array();
        $key = (Input::has('key')) ? $appendlinks['key'] = ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get('key')))) : null;

            $data = $this->cuockt->GetList($key);
            $data->appends($appendlinks)->links();

            $currentPage = (Input::has('page')) ? (Input::get("page") > 1) ? Input::get("page") : 1 : 1;
            $numRows = ($currentPage - 1) * $this->cuockt->GETCKT();

            return View::make('qlcuockt.index')
                            ->with("key", $key)
                            ->with("numRows", $numRows)
                            ->with("data", $data)
                            ->with("title", "Danh sách cuộc kiểm tra");
    }

    //Phuong thuc hien khung them thong tin
    public function add() {
        $key = null;
        $doankt = new DoanKiemTra();
        $doans = $doankt->GetList($key);
        
        $cskt = new CoSoThanhTra();
        $cs = $cskt->GetListAll();
        
        $nam = new Nam();
        $n = $nam->GetList();
        
        return View::make('qlcuockt.add')
                        ->with("dkts", $doans)
                        ->with("css", $cs)
                        ->with("nams", $n)
                        ->with("title", "Thêm cuộc kiểm tra");
    }

    //Phuong thuc xu ly luu thong tin moi
    public function save() {
        try {
                $data = array(
                    "ID_DOAN_TT" => Input::get("idd"),
                    "ID_CS_TT" => Input::get("idcs"),
                    "ID_NAM" => Input::get("idnam"),
                    "SO_QD" => Input::get("soqd"),
                    "NGAY_BH_QD" => Input::get("ngaybh"),
                    "SO_TOTRINH" => Input::get("sott"),
                    "NGAY_BH_TOTRINH" => Input::get("ngaytt"),
                    "THOI_KY_TT" => Input::get("tktt"),
                    "NGAY_BD_TT" => Input::get("ngaybdtt"),
                    "NGAY_KT_TT" => Input::get("ngaykttt"),
                    "SO_NGAY_LAM_VIEC" => Input::get("songaylv"),
                    "NOI_DUNG_KT" => ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get("ndkt")))),
                    "LOAI_HINH_KT" => ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get("lhkt")))),
                    "NOI_DUNG_PC" => ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get("ndpc")))),
                    "NGAY_BD_PC" => Input::get("ngaybdpc"),
                    "MGAY_KT_PC" => Input::get("ngayktpc"),
                    "MGAY_BD_CONGBO" => Input::get("ngaybdcb"),
                    "NGAY_KT_CONGBO" => Input::get("ngayktcb"),
                    "STATUS_TTTT" => Input::get("statustttt")
                );
                if ($this->cuockt->SaveIn($data)) {
                    return Redirect::to('ql=dscuockt')
                                    ->with("success", "Thêm cuộc kiểm tra thành công!");
                }
                return Redirect::back()
                                ->with("error", "Thêm cuộc thanh tra thất bại!");
        } catch (Exception $ex) {
            return Redirect::back()
                            ->withInput()
                            ->with("error", "Thêm thất bại do dữ liệu không hợp lệ!");
        }
    }

    //Phuong thuc hien khung sua thong tin xac dinh
    public function edit() {
        if (Input::has('idctt')) {
            $id = Input::get('idctt');
            $idd = Input::get('iddtt');
            $idcs = Input::get('idcstt');
            $idn = Input::get('idn');
            if (is_numeric($id)) {
                $row = $this->cuockt->GetOne($id);
//                lay doan thanh tra
                $doantt = new DoanKiemTra();
                $dtt = $doantt->GetOne($idd);
//                lay co so thanh tra
                $cosott = new CoSoThanhTra();
                $cs = $cosott->GetOne($idcs);
                $stt = 0;
//                lay nam thanh tra
                $nam = new Nam();
                $n = $nam->GetOne($idn);

                return View::make('qlcuockt.view')
                                ->with("stt", $stt)
                                ->with("doantt", $dtt)
                                ->with("cosott", $cs)
                                ->with("namtt", $n)
                                ->with("row", $row)
                                ->with("title", "Xem thông tin chi tiết cuộc kiểm tra");
            }
        }
        return $this->index();
    }

    //Phuong thuc xu ly luu thong tin da sua
    public function store() {
        $id = Input::get("id");
        $data = array(
                    "ID_DOAN_TT" => Input::get("iddkt"),
                    "ID_CS_TT" => Input::get("idcskt"),
                    "ID_NAM" => Input::get("idnam"),
                    "SO_QD" => Input::get("soqd"),
                    "NGAY_BH_QD" => Input::get("ngaybhqd"),
                    "SO_TOTRINH" => Input::get("sott"),
                    "NGAY_BH_TOTRINH" => Input::get("ngaybhtt"),
                    "THOI_KY_TT" => Input::get("thoikytt"),
                    "NGAY_BD_TT" => Input::get("ngaybdtt"),
                    "NGAY_KT_TT" => Input::get("ngakttt"),
                    "SO_NGAY_LAM_VIEC" => Input::get("songaylv"),
                    "NOI_DUNG_PC" => ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get("noidungpc")))),
                    "NGAY_BD_PC" => Input::get("ngaybdpc"),
                    "MGAY_KT_PC" => Input::get("ngayktpc"),
                    "MGAY_BD_CONGBO" => Input::get("ngaybdcb"),
                    "NGAY_KT_CONGBO" => Input::get("ngayktcb"),
                    "STATUS_TTTT" => Input::get("statustttt")
        );
        if ($this->cuockt->validation(Input::all())) {
            if ($this->cuockt->StoreIn($data, $id)) {
                return Redirect::to('ql=dscuockt')
                    ->with("success", "Chỉnh sửa cuộc kiểm tra hoàn tất!");
            }
            return Redirect::back()
                    ->with("error", "Chỉnh sửa cuộc kiểm tra thất bại!");
        }
        return Redirect::back()
            ->with("error", "Sửa thất bại do dữ liệu không phù hợp!");
    }

    //Phuong thuc xoa mot thong tin nao do
    public function remove() {
        if (Input::has("id")) {
            $id = Input::get("id");
            if (is_numeric($id)) {
                if ($this->cuockt->Remove($id)) {
                    $appendlinks = array();
                    $key = (Input::has('key')) ? $appendlinks['key'] = ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get('key')))) : null;

                    try {
                        $data = $this->cuockt->GetList($key);
                        $data[0]->ID; //Bẫy lỗi
                    } catch (Exception $ex) {
                        $url = url("ql=dscuockt");
                        $currentPage = (Input::has('page')) ? (Input::get("page") > 1) ? Input::get("page") : 1 : 1;
                        Input::merge(array('page' => ( --$currentPage == 0) ? 1 : $currentPage));

                        $data = $this->cuockt->GetList($key);
                        $data->setBaseUrl('ql=dscuockt');
                        $data->appends($appendlinks)->links();

                        $numRows = ($currentPage - 1) * $this->cuockt->GetCKT();
                        $url = $url . "?page=" . $currentPage . (($key != null) ? "&key=" . $key : "");
                        return View::make('qlcuockt.index')
                                        ->with("key", $key)
                                        ->with("numRows", $numRows)
                                        ->with("data", $data)
                                        ->with("url", $url)
                                        ->with("warning", "Xóa cuộc kiểm tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.")
                                        ->with("title", "Danh sách cuộc kiểm tra");
                    }
                    return Redirect::back()
                                    ->with("warning", "Xóa cuộc kiểm tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.");
                }
                return Redirect::back()
                                ->with("error", "Xóa cuộc kiểm tra thất bại!");
            }
        }
        return Redirect::back()
                        ->with("error", "Không thể xóa do không có đoàn này trong CSDL!");
    }

    //Phuong thuc tim kiem thong tin xac dinh theo thuc post
    public function search() {
        if (Request::ajax()) {
            $mst = Input::get('mast');
            $nam = Input::get('nam');
            try {
                $data = $this->cuockt->GetOneWithMST($mst, $nam);
                return Response::json($data);
            } catch (Exception $ex) {
                return Response::json(null);
            }
        }
    }

}
